home *** CD-ROM | disk | FTP | other *** search
- 1 *************************************************************************
- 2 * *
- 3 * BESCHREIBUNG: *
- 4 * *
- 5 * Dieses Programm verdeutlicht die Verwendung der in CB.OBJ ent- *
- 6 * haltenen Funktionen *
- 7 * *
- 8 *************************************************************************
- 9 * *
- 10 * PROZEDUREN und FUNKTIONEN: *
- 11 * *
- 12 * procedure BUCHEN - ermittelt die Beitragszahlungen *
- 13 * procedure SCHREIBEN - erstellt die Bankdiskette *
- 14 * *
- 15 *************************************************************************
- 16 * *
- 17 * DATEIEN im Zugriff: *
- 18 * *
- 19 * VEREIN.DBF - enthält die Angaben zum Verein *
- 20 * BEITRAG.DBF - enthält die Beitragsdaten *
- 21 * DTAUS1.DBF - temporäre Datei mit den Bankdaten *
- 22 * *
- 23 *************************************************************************
- 24 * *
- 25 * VARIABLEN: *
- 26 * *
- 27 * ename - Name des Vereins *
- 28 * eblz - BLZ des Vereins *
- 29 * ektonr - Kontonummer des Vereins *
- 30 * emod - Kennziffer für Prüfziffernverfahren *
- 31 * ebank - Name der bezogenen Bank *
- 32 * eort - Sitz der bezogenen Bank *
- 33 * gut - Gutschriften oder Lastschriften *
- 34 * arbeit - Arbeitsbereich für DTAUS1.DBF *
- 35 * liste[1] - Array mit Textzeilen *
- 36 * bis *
- 37 * liste[16] *
- 38 * ts - Textschlüssel *
- 39 * fname - Name des Mitglieds *
- 40 * fblz - BLZ des Mitglieds *
- 41 * fktonr - Kontonummer des Mitglieds *
- 42 * fmod - Kennziffer für Prüfziffernverfahren *
- 43 * lauf - Kennbuchstabe für Laufwerk *
- 44 * disk - Kennziffer für Diskettenkapazität *
- 45 * *
- 46 *************************************************************************
- 47 * *
- 48 * ÄNDERUNGEN: *
- 49 * *
- 50 *********************** COPYRIGHT B. HOHENESTER *************************
- 51 procedure buchen
- 52 *
- 53 * ggf. Meldung für Benutzer
- 54 *
- 55 *
- 56 * ggf. Abbruchmöglichkeit
- 57 *
- 58 *
- 59 * hier werden die konstanten Variablen für die Funktionen in CB vorbelegt
- 60 *
- 61 select 2
- 62 use verein && Datei mit Vereinsdaten öffnen
- 63 ename = ver_name && eigener Name
- 64 eblz = ver_blz && eigene BLZ
- 65 ektonr = ver_blz && eigene Kontonummer
- 66 ebank = ver_bname && eigener Bankname
- 67 eort = ver_ort && Sitz der Bank
- 68 gut = .F. && hier Lastschriften
- 69 arbeit = 7 && Arbeitsbereich für DTAUS1.DBF
- 70 use && Datei schließen
- 71 emod = "09"
- 72 blz_flag = .F. && Zeiger für Datei offen
- 73 *
- 74 * Bankleitzahlenbibliothek öffnen
- 75 * Diese Bibliothek können Sie gesondert bestellen
- 76 *
- 77 ┌if file("BLZ.DBF")
- 78 │ use blz index blz
- 79 │ seek eblz
- 80 │ ┌if found()
- 81 │ │ store feld7 to emod && Kennziffer für Prüfverfahren holen
- 82 │ └endif
- 83 │ blz_flag = .T. && Datei bleibt geöffnet!
- 84 └endif
- 85 select 1
- 86 *
- 87 * die restlichen Variablen werden während des Schleifendurchlaufs gesetzt
- 88 *
- 89 declare liste[16] && Array für Verwendungszweck usw.
- 90 ┌for i = 1 to 16 && MUSS mit Leerstrings vorbelegt werden!
- 91 │ liste[i] = ""
- 92 └next i
- 93 ts = "10" && Textschlüssel
- 94 *
- 95 * sonstige Variablen vorbelegen
- 96 *
- 97 a_satz = .T. && A-Satz schreiben veranlassen
- 98 vbeitrag = 50 && Mitgliedsbeitrag DM 50,-
- 99 select 1
- 100 use beitrag && Beitragsdatei öffnen
- 101 go top
- 102 ┌do while .NOT. eof()
- 103 │ *
- 104 │ * restliche Variablen für CB vorbelegen
- 105 │ *
- 106 │ fblz = blz && BLZ des Mitglieds
- 107 │ fname = trim(vorname) + " " + trim(name) && Name des Mitglieds
- 108 │ fktonr = ktonr && Kontonummer des Mitglieds
- 109 │ liste[1] = "Mitgliedsnummer: " + mnr && Verwendungszweck 1. Zeile
- 110 │ liste[3] = "Mitgliedsbeitrag für " + year(date()) && Verwendungszweck 2. Zeile
- 111 │ fmod = "09" && Kennziffer vorbelegen
- 112 │ *
- 113 │ * Bankleitzahlenbibliothek
- 114 │ *
- 115 │ ┌if blz_flag
- 116 │ │ select 2
- 117 │ │ seek fblz
- 118 │ │ ┌if found()
- 119 │ │ │ store feld7 to fmod
- 120 │ │ └endif
- 121 │ │ select 1
- 122 │ └endif
- 123 │ *
- 124 │ * fälligen Beitrag ermitteln
- 125 │ * dabei wird der Feldinhalt BEITRAG vom Jahresbeitrag VBEITRAG abgezogen
- 126 │ *
- 127 │ vbeifael = vbeitrag - beitrag
- 128 │ *
- 129 │ * wenn noch Beitrag bezahlt werden muß, Zahlung in der Datei BEITRAG
- 130 │ * eintragen und für CB anlegen
- 131 │ *
- 132 │ ┌if vbeifael > 0
- 133 │ │ ┌if a_satz && wenn noch kein A-Satz geschrieben, dann jetzt
- 134 │ │ │ cba_rueck = cb_a(ename, eblz, ektonr, emod, gut, arbeit)
- 135 │ │ │ ┌do case
- 136 │ │ │ ├──case cba_rueck = 1 && ungültige Bankleitzahl
- 137 │ │ │ │ *
- 138 │ │ │ │ * Fehlermeldung an Benutzer
- 139 │ │ │ │ *
- 140 │ │ │ ├──case cba_rueck = 2 && ungültiger Name
- 141 │ │ │ │ *
- 142 │ │ │ │ * Fehlermeldung an Benutzer
- 143 │ │ │ │ *
- 144 │ │ │ ├──case cba_rueck = 3 && ungültige Kontonummer
- 145 │ │ │ │ *
- 146 │ │ │ │ * Fehlermeldung an Benutzer
- 147 │ │ │ │ *
- 148 │ │ │ ├──case cba_rueck = 4 && ungültiger Arbeitsbereich
- 149 │ │ │ │ *
- 150 │ │ │ │ * Fehlermeldung an Benutzer
- 151 │ │ │ │ *
- 152 │ │ │ └endcase
- 153 │ │ │ ┌if cba_rueck # 0 && wenn schon beim A-Satz Fehler aufgetreten, dann abbrechen
- 154 │ │ │ │ ┌if blz_flag && wenn Datei geöffnet, wieder schließen
- 155 │ │ │ │ │ select 2
- 156 │ │ │ │ │ use
- 157 │ │ │ │ │ select 1
- 158 │ │ │ │ └endif
- 159 │ │ │ │ use && Beitragsdatei schließen
- 160 │ │ │ │ return
- 161 │ │ │ └endif
- 162 │ │ │ a_satz = .F. && weiteres Schreiben von A-Satz verhindern
- 163 │ │ └endif
- 164 │ │ *
- 165 │ │ * jetzt wird die Zahlung für CB angelegt
- 166 │ │ *
- 167 │ │ cbc_rueck = cb_c(fname, fblz, fktonr, fmod, fbetrag, ts, liste)
- 168 │ │ *
- 169 │ │ * wenn beim Schreiben des C-Satzes ein Fehler aufgetreten ist, dann
- 170 │ │ * Meldung an Benutzer ausgeben.
- 171 │ │ * Es ist sinnvoll, z. B. den Namen des Mitglieds bei dieser Fehlermeldung
- 172 │ │ * anzugeben, da diese Zahlung manuell nachgeholt werden muß.
- 173 │ │ *
- 174 │ │ ┌if cbc_rueck # 0
- 175 │ │ │ ┌do case
- 176 │ │ │ ├──case cbc_rueck = 1 && ungültige BLZ des Mitglieds
- 177 │ │ │ │ *
- 178 │ │ │ │ * Fehlermeldung an Benutzer
- 179 │ │ │ │ *
- 180 │ │ │ ├──case cbc_rueck = 2 && ungültiger Name des Mitglieds
- 181 │ │ │ │ *
- 182 │ │ │ │ * Fehlermeldung an Benutzer
- 183 │ │ │ │ *
- 184 │ │ │ ├──case cbc_rueck = 3 && ungültige Kontonummer des Mitglieds
- 185 │ │ │ │ *
- 186 │ │ │ │ * Fehlermeldung an Benutzer
- 187 │ │ │ │ *
- 188 │ │ │ ├──case cbc_rueck = 4 && ungültiger Betrag
- 189 │ │ │ │ *
- 190 │ │ │ │ * Fehlermeldung an Benutzer
- 191 │ │ │ │ *
- 192 │ │ │ ├──case cbc_rueck = 5 && ungültiger Textschlüssel
- 193 │ │ │ │ *
- 194 │ │ │ │ * Fehlermeldung an Benutzer
- 195 │ │ │ │ *
- 196 │ │ │ ├──case cbc_rueck = 6 && ungültige Jahreszahl in Textschlüssel
- 197 │ │ │ │ *
- 198 │ │ │ │ * Fehlermeldung an Benutzer
- 199 │ │ │ │ *
- 200 │ │ │ └endcase
- 201 │ │ ├else
- 202 │ │ │ replace beitrag with (beitrag + vbeifael) && Zahlung in Beitragsdatei eintragen
- 203 │ │ └endif
- 204 │ └endif
- 205 │ skip
- 206 └enddo
- 207 *
- 208 * wenn ein A-Satz geschrieben wurde, muß nun ein E-Satz angelegt werden
- 209 *
- 210 ┌if cba_rueck = 0
- 211 │ cb_e()
- 212 └endif
- 213 ┌if blz_flag && wenn Datei geöffnet, wieder schließen
- 214 │ select 2
- 215 │ use
- 216 │ select 1
- 217 └endif
- 218 *
- 219 * zum Abschluß die Datei DTAUS1 auf Diskette schreiben
- 220 *
- 221 do schreiben
- 222 use && Beitragsdatei schließen
- 223 return
- 224 *************************************************************************
- 225 *************************************************************************
- 226 procedure schreiben
- 227 *
- 228 * ggf. Meldung für Benutzer
- 229 *
- 230 *
- 231 * ggf. Laufwerk, auf dem die Diskette erstellt werden soll, abfragen
- 232 *
- 233 lauf = "A" && Laufwerk A:
- 234 *
- 235 * ggf. prüfen, ob Diskette in das bezeichnete Laufwerk eingelegt ist
- 236 *
- 237 *
- 238 * ggf. Kapazität der Diskette ermitteln
- 239 *
- 240 disk = "1" && Diskette 360 KByte
- 241 *
- 242 * jetzt werden die Daten auf Diskette geschrieben und die Sicherungsdatei angelegt
- 243 * die Variable ARBEIT wurde bereits definiert
- 244 *
- 245 cbd_rueck = cb_dtaus(lauf, disk, arbeit)
- 246 *
- 247 * da die Daten in eine Datei "gedruckt" werden, MUSS der Drucker neu gesetzt
- 248 * werden!
- 249 *
- 250 set printer to lpt1
- 251 ┌do case
- 252 ├──case cbd_rueck = 1 && temporäre Datei DTAUS1.DBF nicht gefunden
- 253 │ *
- 254 │ * Fehlermeldung an Benutzer
- 255 │ *
- 256 ├──case cbd_rueck = 2 && ungültige Diskettenkapazität angegeben
- 257 │ *
- 258 │ * Fehlermeldung an Benutzer
- 259 │ *
- 260 ├──case cbd_rueck = 3 && ungültiges Laufwerk angegeben
- 261 │ *
- 262 │ * Fehlermeldung an Benutzer
- 263 │ *
- 264 ├──case cbd_rueck = 4 && ungültiger Arbeitsbereich
- 265 │ *
- 266 │ * Fehlermeldung an Benutzer
- 267 │ *
- 268 ├──case cbd_rueck = 5 && nicht genügend Speicherplatz auf Diskette
- 269 │ *
- 270 │ * Fehlermeldung an Benutzer
- 271 │ *
- 272 └endcase
- 273 ┌if cbd_rueck # 0 && wenn Fehler aufgetreten, Abbruch
- 274 │ return
- 275 └endif
- 276 *
- 277 * Begleitscheine drucken
- 278 * die Variablen eBANK, eORT und ARBEIT wurden bereits definiert
- 279 *
- 280 *
- 281 * ggf. vorher prüfen, ob Drucker bereit
- 282 *
- 283 cbb_rueck = cb_begleit(ebank, eort, disk, arbeit)
- 284 ┌do case
- 285 ├──case cbb_rueck = 1 && ungültiger Arbeitsbereich
- 286 │ *
- 287 │ * Fehlermeldung an Benutzer
- 288 │ *
- 289 ├──case cbb_rueck = 2 && ungültige Diskettenkapazität
- 290 │ *
- 291 │ * Fehlermeldung an Benutzer
- 292 │ *
- 293 ├──case cbb_rueck = 3 && temporäre Datei DTAUS1.DBF nicht gefunden
- 294 │ *
- 295 │ * Fehlermeldung an Benutzer
- 296 │ *
- 297 └endcase
- 298 ┌if cbb_rueck # 0 && wenn Fehler aufgetreten, Abbruch
- 299 │ return
- 300 └endif
- 301 *
- 302 * nach erfolgreichem Schreiben der Datei DTAUS1 auf Diskette UND Ausdruck
- 303 * der Begleitscheine MUSS die Datei DTAUS1.DBF gelöscht werden, da sonst
- 304 * die Daten erhalten bleiben!
- 305 *
- 306 erase dtaus1.dbf
- 307 return
- 308 *************************************************************************